package beans;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.RequestScoped;


import modelo.AreaTematica;
import modelo.Usuario;
import dao.AreaTematicaDao;
import excepciones.DaoException;

@ManagedBean //(name = "LoginBean")
@RequestScoped
public class AreasTematicasAbmBean {
	
	@ManagedProperty(value="#{loginBean}")
	private LoginBean loginBean;
	
	@ManagedProperty(value="#{listAreasTematicasBean}")
	private ListAreasTematicasBean listAreasTematicasBean;
	
	public ListAreasTematicasBean getListAreasTematicasBean() {
		return listAreasTematicasBean;
	}


	public void setListAreasTematicasBean(
			ListAreasTematicasBean listAreasTematicasBean) {
		this.listAreasTematicasBean = listAreasTematicasBean;
	}


	public AreaTematica getArea() {
		return area;
	}


	public void setArea(AreaTematica area) {
		this.area = area;
	}


	private Usuario usuario;
	
	private AreaTematica area;
	private Long id;
	private String nombre;
	
	@PostConstruct
	public void init(){
		if (listAreasTematicasBean.getSelected() != null){
			AreaTematicaDao areaTematicaDao = new AreaTematicaDao();
			try {
				this.area = (AreaTematica) areaTematicaDao.findById(listAreasTematicasBean.getSelected());
				this.setId(this.area.getId());
				this.setNombre(this.area.getNombre());
				
			} catch (DaoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
		}
		
	}
	
	
	public String guardar(){
		if (listAreasTematicasBean.getSelected() == null )
		{
			AreaTematica area = new AreaTematica();
			area.setId(id);
			area.setNombre(nombre);
			AreaTematicaDao areaTematicaDao = new AreaTematicaDao(area);
			try {
				areaTematicaDao.create();
			} catch (DaoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			areaTematicaDao.closeEntityManager();
		}else{
			area.setNombre(nombre);
			AreaTematicaDao areaTematicaDao = new AreaTematicaDao(area);
			try {
				areaTematicaDao.update();
			} catch (DaoException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			areaTematicaDao.closeEntityManager();
		}
		
		this.listAreasTematicasBean.setAreas_tematicas(null);
		AreaTematicaDao atDao = new AreaTematicaDao();
		try {
			this.listAreasTematicasBean.setAreas_tematicas(atDao.getTodasAreas());
		} catch (DaoException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}		
		return "irListadoAreasTematicas";
	}
	
	public String volver(){
		return "irListadoAreasTematicas";
	}

	public Usuario getUsuario() {
		return usuario;
	}


	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}


	public LoginBean getLoginBean() {
		return loginBean;
	}
	public void setLoginBean(LoginBean loginBean) {
		this.loginBean = loginBean;
	}


	public Long getId() {
		return id;
	}


	public void setId(Long id) {
		this.id = id;
	}


	public String getNombre() {
		return nombre;
	}


	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	
	
	
	
	
}